'''
解题思路

这道题是非常经典的计数排序题目，所谓计数排序就是对序列中的每个元素的个数进行统计；
统计的方式有多种，例如如果对于序列顺序没有大小要求，我们就可以用集合或是字典【省空间】
或者需要有序遍历可以开数组。

在这到题目中，我们并没有对字母的顺序有要求，即，不用必须从a到z；但我们需要对比字母的数量
所以这道题目我们采用的数据结构就是字典。

通过统计字母出现的频次，最后对比一下即可
'''
class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        my_dict = {}
        for i in s:
            if i not in my_dict.keys():
                my_dict[i] = 0
            my_dict[i] += 1
        for i in t:
            if i not in my_dict.keys():
                return False
            my_dict[i] -= 1
        for k, v in my_dict.items():
            if v != 0:
                return False
        return True
    
class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        import collections
        return collections.Counter(s) == collections.Counter(t)